iT邦幫忙

2023 iThome 鐵人賽

DAY 7
0
SideProject30

UVA題型研究系列 第 7

DAY7:Encryption and decryption

  • 分享至 

  • xImage
  •  

09 UVA10222 Decode the Mad man
內容
BUET大學有一位老教授就發瘋了。他開始說一些奇怪的話。沒有人能夠聽得懂他的上課內容。
最終,BUET大學陷入了難題。無法讓這位老教授繼續在大學教書。
突然有一位學生(肯定是UVA ACM章節的註冊作者,並且在online judge排名很高)創造了一個可以將教授說的話解碼的程式。
在此之後,老教授又繼續正常的教書,每個人都感到很開心。
因此,如果你有機會參訪BUET大學,並且看到一位老師正在用裝有語音辨識麥克風講話,你可別嚇到。
因為現在你的工作就是寫相同的程式來解碼瘋狂老教授的語言。

輸入說明
輸入僅包含一筆測試資料,也就是編碼後的訊息。
這筆測試資料包含一個或多個單字。
字母皆為小寫。

輸出說明
根據測試資料,輸出解碼後的單字。
還好,這工作並不難,只要把每個字母或符號以鍵盤上它左邊第二個鍵的符號來取代就行了。
不會有不合理的情況,比方說編碼訊息為a,但是a在鍵盤上沒有左邊。
空白和換行請直接輸出。

範例輸入 #1
k[r dyt i[o
p '[nt ]y[jyd.
範例輸出 #1
how are you
i love program

題意:輸入一加密過字串,解密方式為鍵盤上向左兩格,輸出解密結果
解題:就解密


key = {
    ']': 'p',
    '[': 'o',
    'p': 'i',
    'o': 'u',
    'i': 'y',
    'u': 't',
    'y': 'r',
    't': 'e',
    'r': 'w',
    'e': 'q',
    "'": 'l',
    ';': 'k',
    'l': 'j',
    'k': 'h',
    'j': 'g',
    'h': 'f',
    'g': 'd',
    'f': 's',
    'd': 'a',
    '.': 'm',
    ',': 'n',
    'm': 'b',
    'n': 'v',
    'b': 'c',
    'v': 'x',
    'c': 'z',
    ' ': ' '
}

while True:
    try:
        n = input()  # 接受一行輸入文本
        n = n.lower()  # 將輸入文本轉換為小寫字母,以便進行加密

        for x in n:
            print(key[x], end='')  # 遍歷輸入的每個字母,並使用 key 字典進行加密,將加密結果印出,不換行
        print()  # 插入一個空行,以便下一輸入的加密結果在新的一行輸出

    except EOFError:  # 當遇到 EOFError 錯誤時,跳出迴圈
        break

上一篇
DAY6:Arrange and combine to find common ground
下一篇
DAY8:Function brought into
系列文
UVA題型研究30
圖片
  直播研討會
圖片
{{ item.channelVendor }} {{ item.webinarstarted }} |
{{ formatDate(item.duration) }}
直播中

尚未有邦友留言

立即登入留言